home *** CD-ROM | disk | FTP | other *** search
/ Top 200 Programs / Top 200 Programs.iso / Bob8 / THOMPSON / LIBERTY / PRODUCT / LB14W.EXE / CONSOLE.BAS < prev    next >
BASIC Source File  |  1996-01-08  |  2KB  |  100 lines

  1.  
  2.     dim screen$(25)
  3.     for x = 0 to 24
  4.         screen$(x) = "                                                                                "
  5.     next x
  6.     curX = 1
  7.     curY = 0
  8.  
  9.     open "graph me!" for graphics_fs as #1
  10.     print #1, "when characterInput [getChar]"
  11.     print #1, "font fixedsys 8 15"
  12.     print #1, "color white ; backcolor black"
  13.     print #1, "fill black"
  14.     print #1, "flush"
  15.     print #1, "trapclose [quit]"
  16.  
  17. [loop]
  18.  
  19.     if time$ <> time$() then time$ = time$() : gosub [switchCursor]
  20.     'if TrapClose = "true" then [quit]
  21.     print #1, "setfocus"
  22.     scan
  23.     goto [loop]
  24.  
  25. [switchCursor]
  26.  
  27.     if curVisible = 0 then curVisible = 1 else curVisible = 0
  28.     print #1, "place "; (curX - 1)*8+2; " "; curY*15+12
  29.     print #1, "down ; north ; size 2 ; rule xor ; color black ; go 14 ; color white ; rule over"
  30.     return
  31.  
  32.  
  33. [getChar]
  34.  
  35.     c$ = Inkey$
  36.     if len(c$) = 1 then [oneChar]
  37.     if c$ = chr$(_VK_RETURN)+chr$(_VK_SHIFT)+chr$(_VK_SHIFT) then [loop]
  38.     notice c$
  39.     goto [loop]
  40.  
  41.   [oneChar]
  42.  
  43.     if curVisible = 1 then gosub [switchCursor]
  44.     useThis$ = c$
  45.     if c$ > chr$(31) then [visibleChar]
  46.  
  47.     if c$ = chr$(_VK_RETURN) then [cr]
  48.     if c$ = chr$(_VK_BACK) and curX = 1 then [loop]
  49.     if c$ = chr$(_VK_BACK) then curX = curX - 1 : useThis$ = " "
  50.  
  51. [visibleChar]
  52.  
  53.     aLine$ = screen$(curY)
  54.     screen$(curY) = left$(aLine$, curX - 1) + useThis$ + mid$(aLine$, curX + 1)
  55.     print #1, "place "; (curX - 1) * 8 + 2; " "; 15 * curY + 12
  56.     print #1, "|"; useThis$
  57.     print #1, "discard"
  58.  
  59.     if c$ = chr$(_VK_BACK) then [loop]
  60.  
  61.     curX = curX + 1
  62.     if curX = 81 then [cr]
  63.     goto [loop]
  64.  
  65. [cr]
  66.  
  67.     curX = 1
  68.     if curY < 23 then curY = curY + 1 : goto [loop]
  69.  
  70.     if screenId <> 0 then print #1, "delsegment "; screenId
  71.     for x = 0 to 23
  72.         screen$(x) = screen$(x + 1)
  73.         print #1, "place 2 "; 15 * x + 12
  74.         print #1, "|"; screen$(x)
  75.     next x
  76.     print #1, "segment"
  77.     input #1, screenId
  78.     print #1, "flush"
  79.  
  80.     goto [loop]
  81.  
  82.  
  83. [displayAll]
  84.  
  85.     if screenId <> 0 then print #1, "delsegment "; screenId
  86.     for x = 0 to 23
  87.         print #1, "place 2 "; 15 * x + 12
  88.         print #1, "|"; screen$(x)
  89.     next x
  90.     print #1, "segment"
  91.     input #1, screenId
  92.     print #1, "flush"
  93.  
  94.     return
  95.  
  96. [quit]
  97.  
  98.     close #1
  99.     end
  100.